package com.smart.manager.finance.entities.bodys;


import com.smart.common.entities.core.BaseSearch;
import com.smart.manager.finance.entities.enums.AppType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 支付中心-支付宝配置
 *
 * @author Administrator
 * @date 2022/10/31
 */

public class RAccountWxpay  {


 /**
  * 支付订单搜索条件
  *
  * @author xiaxuqiu
  * @date 2022/10/17
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ApiModel("RAccountWxpay1")
 public static class SearchBody extends BaseSearch {

  /**
   * 商户名称
   */
  @ApiModelProperty("商户ID")
  private String mchId;
  /**
   * 商户名称
   */

  @ApiModelProperty("商户名称")
  private String mchName;

  /**
   * 应用appId
   */
  @ApiModelProperty("应用appId")
  private String appId;

  /**
   * 应用appId
   */
  @ApiModelProperty("应用类型")
  private AppType appType;


  /**
   * 备注信息
   */
  @ApiModelProperty("备注信息")
  private String description;
 }


 @Data

 @ApiModel("RAccountWxpay12")
 public static class EditBody implements Serializable {

  /**
   * 应用程序id
   */
  @ApiModelProperty("关联应用的appId")
  @NotBlank(message = "关联应用的appId 不能为空")
  @Length(min = 12, max = 34, message = "商户ID长度不合法")
  String appId;

  /**
   * 应用程序类型
   */
  @ApiModelProperty("微信支付关联应用类型")
  @NotNull(message = "应用类型 不能为空")
  AppType appType;
  /**
   * 商户ID
   */
  @ApiModelProperty("商户ID")
  @NotBlank(message = "商户ID不能为空")
  @Length(min = 8, max = 13, message = "商户ID长度不合法")
  private String mchId;
  /**
   * 商户名称
   */

  @ApiModelProperty("商户名称")
  @NotBlank(message = "商户名称 不能为空")
  @Length(max = 30, message = "商户名称 字符长度不能超过30 个字符")
  private String mchName;
  /**
   * V3版加密字符串
   */

  @ApiModelProperty("V3版加密字符串")
  @NotBlank(message = "V3版加密字符串 不能为空")
  @Length(min = 16, max = 40, message = "V3版加密字符串 字符长度请设置再16-40个以内")
  private String v3Key;
  /**
   * 支付证书字符串
   */

  @ApiModelProperty("支付证书字符串")
  @NotBlank(message = "支付证书字符串 不能为空")
  private String privateCert;
  /**
   * 支付证书秘钥
   */

  @ApiModelProperty("支付证书秘钥")
  @NotBlank(message = "支付证书秘钥 不能为空")
  private String privateKey;


  @ApiModelProperty("描述信息")
  @Length(max = 1000, message = "描述信息 不能超过1000个字符串")
  private String description;
 }


}
